package com.newtouch.bxzs.business.message.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.newtouch.bxzs.business.message.model.AnnouncementAddVO;
import com.newtouch.bxzs.business.message.model.AnnouncementBO;
import com.newtouch.bxzs.business.message.model.AnnouncementDetailBO;
import com.newtouch.bxzs.business.message.model.AnnouncementVO;

import java.util.List;

/**
 * 公告管理的service接口
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2020/12/23</td>
 * <td>liman</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author liman
 * @version 1.0.0
 * @since 1.0.0
 */

public interface AnnouncementService {
    /**
     * 通过输入条件查询公告列表
     *
     * @param announcementVO 公告VO类
     * @return 公告列表
     */
    IPage<AnnouncementBO> getAnnouncementList(AnnouncementVO announcementVO);

    /**
     * 通过id查询公告详情
     *
     * @param announcementId 公告id
     * @return 公告详情
     */
    AnnouncementDetailBO getAnnouncementDetail(String announcementId);

    /**
     * 批量逻辑删除公告
     *
     * @param announcementIds 公告id集合
     * @return 信息
     */
    String deleteAnnouncement(List<String> announcementIds);

    /**
     * 发布和撤销
     *
     * @param announcementId 公告id
     * @param announcementStatus 公告状态
     * @return message
     */
    String changeAnnouncementStatus(String announcementId,String announcementStatus);

    /**
     * 新增或者修改公告
     *
     * @param announcementVO 公告VO类
     * @return 公告id
     */
    String modifyAnnouncement(AnnouncementAddVO announcementVO);

    /**
     * 根据系统参数编码,获取缓存,如果为空更新缓存
     * @param code 系统参数编码
     * @return 系统参数值
     */
    String getParameterValueRedis(String code);

}
